Since the same card works properly, and has for approximately three years, in
other Macintosh models (e.g., Quadra 900, MacII, PowerMac 8100, MacIIfx), is
there anything different about the NuBus in the Quadra 840AV?
A Your problem may be caused by a NuBus timing error that was uncovered by the
MUNI chip. The MUNI chip was designed to perform much faster than the older
NuBus controllers, and therefore is not as tolerant of timing errors.
While the Quadra 800, and Centris 650 have the KIWI NuBUS ASIC in them, the 840AV has the MUNI NuBUS ASIC. Both of these ASICs have much tighter timing margins to support NuBUS 90 and higher-speed burst transfers. The clock duty cycle of these ASICs is tighter (it is now very close to the 75/25 specification), and some developers have reported problems as a result.
Be sure to sample the correct edge of the NuBUS clock, per the NuBUS '90 specification. Even if your product works properly on the KIWI chip, there may be subtle timing and/or electrical changes in the MUNI chip that are causing your problem.
A similar problem was reported on the Macintosh Quadra 900/950 with the YANC chip and very fast transfers. The timing is such that the YANC (Yet Another NuBus Controller) chip, which came before KIWI and MUNI, gets lost on the Quadra. One developer was trying to transfer four longs by holding REQ* asserted and was not using attention cycles. Because YANC lost the last arbitration, it looked for start, but it was one clock cycle too late (after the start cycle). As a result, it got lost, and the system hung. Although this problem doesn't exhibit exactly the same symptoms as the problem you are experiencing, there are enough similarities to indicate that both problems are probably caused by the timing differences.
The solution provided to that developer was to use attention-lock, transfer the four long words, and then do an attention-null to re-sync the YANC. This does add some overhead, but it is better than putting a dead cycle after every ACK*, which would make transfers three cycles long instead of two. This approach might solve your problem, as well.
Here's another possible cause: The Muni chip generates a NuBus timeout error if
the entire NuBus transaction takes more than 256 cycles (25.6 usec) after Start
occurs. For Block Transfers, the entire block must complete within 25.6 usec.
Muni generates a timeout error after 25.6 usec, whether it initiated the NuBus
transaction or not (e.g., if the transaction is between two NuBus cards).
Main | Page One | What's New | Apple Computer, Inc. | Find It | Contact Us | Help